| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { NextRequest, NextResponse } from 'next/server';
- import { prisma } from '@/lib/prisma';
- export async function GET(
- request: NextRequest,
- { params }: { params: Promise<{ id: string }> }
- ) {
- try {
- const { id } = await params;
- const importId = parseInt(id);
- if (isNaN(importId)) {
- return NextResponse.json(
- { error: 'Invalid import ID' },
- { status: 400 }
- );
- }
- // Check if import exists
- const importRecord = await prisma.import.findUnique({
- where: { id: importId }
- });
- if (!importRecord) {
- return NextResponse.json(
- { error: 'Import not found' },
- { status: 404 }
- );
- }
- // Get basic summary data
- const totalRecords = await prisma.cintasInstallCalendar.count({
- where: { importId }
- });
- const cintasSummaries = await prisma.cintasSummary.findMany({
- where: { importId },
- orderBy: { week: 'asc' }
- });
- // Get file info
- const file = importRecord.fileId ? await prisma.file.findUnique({
- where: { id: importRecord.fileId }
- }) : null;
- const summary = {
- totalRecords,
- totalWeeks: cintasSummaries.length,
- cintasSummaries: cintasSummaries.map(summary => ({
- week: summary.week,
- trrTotal: summary.trrTotal,
- fourWkAverages: summary.fourWkAverages,
- trrPlus4Wk: summary.trrPlus4Wk,
- powerAdds: summary.powerAdds
- }))
- };
- return NextResponse.json({
- importId,
- fileName: file?.filename || 'Unknown',
- uploadDate: importRecord.createdAt,
- summary
- });
- } catch (error) {
- console.error('Error fetching import summary:', error);
- return NextResponse.json(
- { error: 'Failed to fetch import summary' },
- { status: 500 }
- );
- }
- }
|